Today's DMA controllers or module are used to transfer data, independently from the central processing unit (CPU), between, for example, two memory locations. Conventional DMA modules, however, are usually implemented without complex addressing modes. It is not possible to have the source or destination supply and address the DMA without significantly complicating the DMA module.